import {getOrder} from '../../../api/api.js';
import {delOrder} from '../../../api/api.js';
let app = getApp();
Component({
  /**
   * 组件的属性列表
   */
  properties: {
      
  },
  

  /**
   * 组件的初始数据
   */
  data: {
    allOrder: [
       
    ],
    currentPage:2
  },

  /**
   * 组件的方法列表
   */
  methods: {
    afterSale(){
         console.log("申请售后");

         
    },


      // 进入订单详情
     toDetail(e){
         console.log(e.currentTarget.dataset.order);
         let index = e.currentTarget.dataset.order;
         let order = this.data.allOrder[index];
         console.log(order);
         order =JSON.stringify(order);
          //跳转到详情页面
          wx.navigateTo({
            url: '/pages/orderDetail/orderDetail?orderDetail='+order,
          })

     },

     delOrder(e){
         let orderId = e.currentTarget.dataset.orderid;
         console.log(orderId);
         let data = {
            openId:wx.getStorageSync("loginInfo").openid,
            ids:[]
         }

         data.ids.push(orderId);
         delOrder(data).then(res=>{
            console.log(res);
            if(res.statusCode == 200){
                if (res.data.code == 200) {
                  wx.showToast({
                    title: '删除成功',
                  })


                  // 刷新页面
                  this.getOrder();

                } else {
                  wx.showToast({
                    title: "服务器错误，删除失败",
                    icon:'none'
                  })
                }
            }else{
                wx.showToast({
                  title: '网络错误，请重试...',
                  icon:'none'
                })
            }
         })
     },







      getOrder(){
        console.log("调用过来getorder 接口")
        let data = {
          openId:wx.getStorageSync('loginInfo').openid,
          currentPage:1,
          pageSize:10
        }

        getOrder(data).then(res => {
          console.log(res);
          // 获取allOrder
          let allOrder = res.data.data.rows;
          // 判断是不是null ，如果是null 那么会弹出提示
          // 并且返回false
          let result = app.isNullThenShowToast(allOrder);
          console.log(result, "------------")
          if(result == false)return;
          // 遍历allorder
          allOrder = this.getNewAllOrder(allOrder);
          

          // 遍历完成后allOrder 已经被改变了
          this.setData({ 
             allOrder
          })
          console.log(allOrder);
        })
      },


        // 这个方法用来过滤之前的specName 让这个specname 
        // 变成数组的形式
      getNewAllOrder(allOrder){
        allOrder.forEach(item => {
          let details = item.details;
          //遍历detail
          details.forEach(ite => {
            //获取specName
            let specName = ite.specName;
            specName = JSON.parse(specName);
            //遍历specName
            let newSpecName = [];
            for (let key in specName) {
              // console.log(specName[key]);
              newSpecName.push(specName[key])
            }
            // 把new specName 放回detail中
            ite.specName = newSpecName;
          })
          //detail 已经被改变了把details 放回 item 中
          item.details = details;
        })


        return allOrder;
      },

      toStore(e){
          console.log(e.currentTarget.dataset.id);
          let merchantId = e.currentTarget.dataset.id;
          wx.navigateTo({
            url: '/pages/shop/shop?id='+merchantId,
          })
      },

      // 上拉加载更多
      getMore(){
        /**
         * 查询实体类(OrderQueryObject)
           openId;"微信用户唯一标识"
           status;"订单状态",
           notes = "null/全部,0待付款/1待发货/2待收货/3待评价
           /4交易成功/5交易关闭/6售后中 "
         * 
         * 
         * **/ 
          console.log("上拉加载更多");
          let data = {
              openId: wx.getStorageSync('loginInfo').openid,
              currentPage:this.data.currentPage,//当前页码
              pageSize:10 //每页显示的条数
          }
          getOrder(data).then(res=>{
              console.log(res);
              // 获取到想要的数组
              let data = res.data.data.rows;
              // 判断是不是null
              let result = app.isNullThenShowToast(data);
              if(result==false)return;
              // 改变specname
              data = this.getNewAllOrder(data);
              
              let allOrder = this.data.allOrder;
              allOrder = allOrder.concat(data);
              

              this.setData({
                  currentPage:++this.data.currentPage,
                  allOrder
              })

              console.log("当前页码"+this.data.currentPage);
          })
      }



  },



/**
 * 组件生命周期的特点
 * 1 进入的时候会触发几个生命周期
 * 2 离开这个页面的时候会触发 detache 生命周期
 * 3 从当前页面跳转到其他页面不会触发生命周期
 * 4 再次回来的时候也不会触发生命周期
 * ***/ 
   lifetimes: {
      created() {
        console.log("created在组件实例刚刚被创建时执行")
      },
      attached() {
        console.log("attached在组件实例进入页面节点树时执行");
        this.getOrder();
      },
      ready() {
        console.log("ready在组件在视图层布局完成后执行")
      },
      moved() {
        console.log("moved在组件实例被移动到节点树另一个位置时执行")
      },
      detached() {
        console.log("detached在组件实例被从页面节点树移除时执行")
      },
      error() {
        console.log("error每当组件方法抛出错误时执行")
      }
  },
})
